package com.gohi.main.store.service;

import java.util.List;

import org.hibernate.TransactionException;

import com.gohi.main.store.hbm.ShopgooAppointmentCan;
import com.gohi.main.store.hbm.ShopgooAppointmentT;
import com.gohi.main.store.hbm.ShopgooComment;
import com.gohi.main.user.hbm.ShopgooOrder;

/**
 * 留言和订单信息信息的
 * @author Administrator
 *
 */
public interface ICommentService {
	/**
	 * 根据类型查询留言的信息
	 * @param types  类型的ID 1为技师评论 2为商铺评论  3为项目评论
	 * @param id  对应上面的ID
	 * @return  集合
	 * @throws TransactionException
	 */
	public abstract List<ShopgooComment> getCommentByType(String types,String id)throws TransactionException;
	
	/**
	 * 根据用户ID查询自己的列表
	 * @param userid
	 * @param type  类型  1为全部的  
	 * @return
	 * @throws TransactionException
	 */
	public abstract List<ShopgooOrder> getOrdersByUser(int userid,String type)throws TransactionException;
	
	/**
	 * 根据技师查询他的预约时间
	 * @param hour  耗时
	 * @param beautician_id 技师的ID
	 * @return 集合
	 * @throws TransactionException
	 */
	public abstract List<ShopgooAppointmentCan> getBeauticianTime(String hour,String beautician_id);
	
	/**
	 * 添加一个订单信息
	 * @param order
	 * @return  返回插入的ID
	 * @throws TransactionException
	 */
	public abstract String  addOrders(ShopgooOrder order);
	/**
	 * 添加一个
	 * @param app
	 * @return 0成功 1失败
	 */
	public abstract int  addAppointment(ShopgooAppointmentT app);
	/**
	 * 订单成功到这里
	 * @param orderid 订单的ID
	 * @param paytype 1-线上，2-线下（到店付款）
	 * @return 0成功  为失败
	 */
	public abstract int changeOrders(String orderid,String paytype,String openid);
	
	/**
	 * 根据ID 查询一个订单信息
	 * @param id
	 * @return
	 * @throws TransactionException
	 */
	public abstract ShopgooOrder queryOrderById(String id);
	
	/**
	 * 添加的评论信息
	 * @param comm  实体
	 * @return  0失败 1成功
	 */
	public abstract int addComment(ShopgooComment comm);
	
	/**
	 * 判断这个时间段是否已经被用户预约了
	 * @param order 0为失败 1为成功
	 * @return
	 */
	public abstract int checkOrderTime(String order); 
	
	/**
	 * 更新订单状态
	 * @param order  订单编号
	 * @param state   状态   状态 1.未支付 2.已支付 3.已消费,5，线下付款  4 退款中  6 订单已取消 
	 * @return
	 */
	public abstract int chageOrderstet(String order,int state); 
	
	/**
	 * 根据订单查询 支付密码
	 * @param order  订单ID
	 * @return
	 */
	public abstract long queryOrderPwd(String order); 
	
	
	/**
	 * 解除用户绑定
	 * @param openid  订单编号
	 * @return
	 */
	public abstract int reBindWxuser(String openid); 

}
